<?php

class hacerTransferencia extends CI_Controller {

    function __construct() {
        // Call the Model constructor
        parent::__construct();
        if ($sessionData = $this->session->userdata('datosUser')) {
            $this->lang->load($sessionData['idioma'], $sessionData['idioma']);
            $this->clear_cache();
        } else {
            redirect('frontend/login/login');
        }
    }

    function clear_cache() {
        $this->output->set_header("Cache-Control: no-store, no-cache, must-revalidate, no-transform, max-age=0, post-check=0, pre-check=0");
        $this->output->set_header("Pragma: no-cache");
    }

    public function index() {
        if ($this->session->userdata('datosUser')) {
            $sessionData = $this->session->userdata('datosUser');
            $this->lang->load($sessionData['idioma'], $sessionData['idioma']);
            $this->load->model('backend/cuenta/mcuenta');
            $data['id'] = $sessionData['idCliente'];
            $data['cuenta'] = $this->mcuenta->misCuentas($sessionData['idCliente']);
            $this->load->model('backend/transferencia/mHacerTransferencia');
            $data['transferencias'] = $this->mHacerTransferencia->transferenciasHabituales($data['id']);
            $this->cargamenu->cargaTodo('backend/transferencia/hacerTransferencia', $data);
        } else {
            redirect('frontend/login/login');
        }
    }

    /**
     * Carga los datos por post para hacer una transferencia, genera la transferencia y redirige a las cuentas del usuario.
     *
     */
    public function setTransferencia() {
        if ($this->session->userdata('datosUser')) {
            $sessionData = $this->session->userdata('datosUser');
            $this->lang->load($sessionData['idioma'], $sessionData['idioma']);
            $data = $this->input->post();
            $this->load->model('backend/cuenta/mcuenta');
            if (isset($data['cuenta'])) {
                $strId = preg_split('[#]', $data['cuenta'], null, PREG_SPLIT_NO_EMPTY);
            } else {
                $strId[0] = $data['transferenciaHabitual'];
            }
            $this->mcuenta->insertMovimiento($data);
            $idMovimineto = $this->mcuenta->getLastMovimiento();
            $this->load->model('backend/transferencia/mHacerTransferencia');

            $tipo = $data['cuentaDestino'];
            if ($tipo == "Mi cuenta") {
                $cuentaDestino = $this->mcuenta->getCuentaPorId($data['uCuentaId']);
                $IdCuentaNot = $this->session->userdata('datosUser');
                $this->mHacerTransferencia->insertTransferencia($data, $strId[0], $cuentaDestino[0]->codigoEntidad . $cuentaDestino[0]->codigoOficina . $cuentaDestino[0]->codigoControl . $cuentaDestino[0]->codigoCuenta, $idMovimineto, $IdCuentaNot['idCliente'], 0);
            } else {
                $IdCuentaNot = $this->session->userdata('datosUser');
                $this->mHacerTransferencia->insertTransferencia($data, $strId[0], $data['otraCuentaEntidad'] . $data['otraCuentaOficina'] . $data['otraCuentaControl'] . $data['otraCuentaCuenta'], $idMovimineto, $IdCuentaNot['idCliente'], 0);
            }

            $cuentaDestino = "";
            if ($tipo == "Mi cuenta") {
                $idcDestino = $data['uCuentaId'];
                $cuentaDestino = $this->mcuenta->getCuentaPorId($idcDestino);
                $this->mcuenta->insertMovimientoConIdCuentaSeparadoYPositivo($data, $idcDestino);
                $idMovimineto2 = $this->mcuenta->getLastMovimiento();
                $IdCuentaNot = $this->mcuenta->getIdClienteByIdCuenta($data['uCuentaId']);

                $this->mHacerTransferencia->insertTransferencia($data, $strId[0], ($cuentaDestino[0]->codigoEntidad) . ($cuentaDestino[0]->codigoOficina) . ($cuentaDestino[0]->codigoControl) . ($cuentaDestino[0]->codigoCuenta), $idMovimineto, $IdCuentaNot[0]->idCliente, 1);
            } else {
                $strCuenta = preg_split('[ ]', $data['oDestino'], null, PREG_SPLIT_NO_EMPTY);
                $nRows = $this->mcuenta->existCuenta($data['otraCuentaEntidad'], $data['otraCuentaOficina'], $data['otraCuentaControl'], $data['otraCuentaCuenta']);
                if ($nRows == 1) {
                    $idCuentaDestino = $this->mcuenta->dameIdCuenta($data['otraCuentaEntidad'], $data['otraCuentaOficina'], $data['otraCuentaControl'], $data['otraCuentaCuenta']);
                    $cuentaDestino = $this->mcuenta->getCuentaPorId($idCuentaDestino);

                    $this->mcuenta->insertMovimientoConIdCuentaSeparadoYPositivo($data, $idCuentaDestino);
                    $idMovimineto2 = $this->mcuenta->getLastMovimiento();
                    $IdCuentaNot = $this->mcuenta->getIdClienteByCuenta($data);
                    $this->mHacerTransferencia->insertTransferencia($data, $strId[0], $data['otraCuentaEntidad'] . $data['otraCuentaOficina'] . $data['otraCuentaControl'] . $data['otraCuentaCuenta'], $idMovimineto2, $IdCuentaNot[0]->idCliente, 1);
                }
            }
            redirect('backend/cuenta/cuenta');
        } else {
            redirect('frontend/login/login');
        }
    }

}